package cn.bearspark.happening.dto.vote;

import cn.bearspark.common.convert.ConvertInfo;
import cn.bearspark.common.enumeration.ConvertTypeEnum;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 投票详细信息的数据传输对象
 *
 * @author f
 */
@Data
public class VoteDetailDTO implements Serializable {

    /**
     * 发布投票的用户 id
     */
    private Long userId;

    /**
     * 发布投票的用户的用户名
     */
    private String username;

    /**
     * 发布投票的用户的头像的路径
     */
    private String avatarUrl;

    /**
     * 投票的标题
     */
    private String title;

    /**
     * 投票的描述，可以为 null
     */
    private String desc;

    /**
     * 投票人数的信息
     */
    @ConvertInfo(ConvertTypeEnum.NUMBER)
    private String voteNumInfo;

    /**
     * 投票的类型
     *
     * @see cn.bearspark.happening.enumeration.vote.VoteTypeEnum
     */
    private Integer voteType;

    /**
     * 最大投票数
     */
    private Integer voteLim;

    /**
     * 截止状态
     *
     * @see cn.bearspark.happening.enumeration.DeadEnum
     */
    private Integer dead;

    /**
     * 投票的选项
     */
    private List<Option4Display> optionList;

    /**
     * 是否已投票，针对投票者
     *
     * @see cn.bearspark.happening.enumeration.vote.VotedEnum
     */
    private Integer voted;

    /**
     * 参与投票的人的信息列表，针对发布投票的用户，真能看到关注用户的投票情况
     */
    private List<VoterInfo> voterInfoList;

}
